package com.aube.mis.service;

import java.util.List;

import com.aube.mis.dto.InfoDTO;
import com.aube.mis.dto.MulticameraDTO;
import com.aube.mis.dto.MulticameraVideoDTO;
import com.aube.mis.dto.QaDTO;
import com.aube.mis.dto.QuizDTO;
import com.aube.mis.dto.TimelineBaseDTO;
import com.aube.mis.dto.TimelineHighlightDTO;
import com.aube.mis.dto.TimelineItemDTO;
import com.aube.mis.dto.TimelineItemIdentifyDTO;
import com.aube.mis.dto.TimelineItemLocationDTO;
import com.aube.mis.dto.VoteDTO;
import com.aube.mis.dto.VsDTO;

public interface TimelineService {

	<T extends TimelineBaseDTO> List<T> getTimelineList(String showId, String videoId, String type);

	void deleteTimeline(String timelineId);

	void editVs(VsDTO vsDTO);

	void editQa(QaDTO qaDTO);

	void editVote(VoteDTO voteDTO);

	void editInfo(InfoDTO infoDTO);

	void editQuiz(QuizDTO quizDTO);

	void editMainMulticamera(MulticameraDTO multicameraDTO);

	void editSubMulticamera(MulticameraVideoDTO multicameraVideoDTO);

	MulticameraVideoDTO getSubMulticameraDetail(String rid);

	<T extends TimelineBaseDTO> T getTimelineDetail(String timelineId, String videoId);

	void deleteMulticamera(String rid);

	TimelineItemIdentifyDTO getItemIdentifyData(String showId, String videoId, String itemId, String timelineId);

	void saveItemIdentifyData(TimelineItemLocationDTO timelineItemLocationDTO, String showId, String videoId, String itemId);
	
	String editItem(TimelineItemDTO itemDTO);
	
	void identifyItem(List<String> itemIdList, String showId, String videoId);
	
	void editHighlight(TimelineHighlightDTO highlightDTO);
}
